package org.dromara.common.core.enums;

import org.dromara.common.core.utils.StringUtils;
import lombok.AllArgsConstructor;
import lombok.Getter;


/**
 * @Author 刘武贵
 * @Date 2024/8/15 22:00
 * @Description 功能描述：设备类型
 * 针对多套 用户体系
 */
@Getter
@AllArgsConstructor
public enum UserType {

    /**
     * pc端
     */
    SYS_USER("sys_user"),

    /**
     * app端
     */
    APP_USER("app_user");

    /**
     * 用户类型
     */
    private final String userType;

    /**
     * 根据字符串获取用户类型枚举值
     *
     * 此方法旨在通过提供的字符串参数，查找并返回对应的用户类型枚举值
     * 如果提供的字符串与任何用户类型枚举值匹配，则返回该枚举值
     * 如果没有找到匹配的枚举值，则抛出运行时异常
     *
     * @param str 描述用户类型的字符串
     * @return 匹配的用户类型枚举值
     * @throws RuntimeException 如果找不到匹配的用户类型枚举值
     */
    public static UserType getUserType(String str) {
        for (UserType value : values()) {
            if (StringUtils.contains(str, value.getUserType())) {
                return value;
            }
        }
        throw new RuntimeException("'UserType' not found By " + str);
    }
}
